package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @desc ObtainReceiveFieldComReqDto
 * @使用场景
 */
@Data
public class ObtainReceiveFieldComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 周期阶段资料记录ID
     */
    @ApiModelProperty("周期阶段资料记录ID")
    private String cycleStageDataId;

    /**
     * 任务ID
     */
    @ApiModelProperty("任务ID")
    private String taskId;

    /**
     * 周期ID
     */
    @ApiModelProperty("周期ID")
    private String cycleId;

    /**
     * 阶段工作总结内容
     */
    @ApiModelProperty("阶段工作总结内容")
    private String staWorSumCon;

    /**
     * 问题总结
     */
    @ApiModelProperty("问题总结")
    private String sumOfPro;

    /**
     * 解决思路
     */
    @ApiModelProperty("解决思路")
    private String solvingIdeas;

    /**
     * 是否实际验收周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否实际验收周期")
    private String isActualReceptionCycle;

    /**
     * 是否允许操作 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否允许操作")
    private String isAllowOpt;

    /**
     * 成员管理权限类型 MIS_MANAGE:不可管理 FIRST_MANAGE:首次管理 FOLLOW_MANAGE:后续管理 CUR_MANAGE:当前正在管理
     */
    @ApiModelProperty("成员管理权限类型")
    private String enterMgtPowerType;

    /**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String targetCycleContentId;

    /**
     * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String targetCycleContentTypeCode;

    /**
     * 冗余评价模板ID
     */
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

    @ApiModelProperty("文档列表 ")
    List<String> documentList = new ArrayList<>();

    /**
     * 实际值（数值）
     */
    @ApiModelProperty("实际值（数值）")
    private Double actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("实际值单位")
    private String actualValueUnit;

    /**
     * 参照实际值（数值）
     */
    @ApiModelProperty("参照实际值（数值）")
    private Double countActualValue;

    /**
     * 参照实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照实际值单位")
    private String countActualValueUnit;

    /**
     * 参照较上次目标变化值
     */
    @ApiModelProperty("参照较上次目标变化值")
    private Double countChangeFromLastTarget;

    /**
     * 参照较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照较上次目标变化值单位")
    private String countChangeFromLastTargetUnit;

    /**
     * 参照较上次目标增降幅
     */
    @ApiModelProperty("参照较上次目标增降幅")
    private Double countFromLastTargetLiftRatio;

    /**
     * 参照较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照较上次目标增降幅单位")
    private String countFromLastTargetLiftRatioUnit;

    /**
     * 进度值（数值）
     */
    @ApiModelProperty("进度值（数值）")
    private Double progressValue;

    /**
     * 进度值单位
     */
    @ApiModelProperty("进度值单位")
    private String progressValueUnit;

    /**
     * 文档ID
     */
    @ApiModelProperty("文档ID")
    private String unstructuredDataId;

    /**
     * 进度较上次增降幅
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String progressFromLastRatioUnit;

    /**
     * 进度较上次变化值
     */
    @ApiModelProperty("进度较上次变化值")
    private Double fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String fromLastProgressValueUnit;

    /**
     * 上一进度值结果
     */
    @ApiModelProperty("上一进度值结果")
    private Double parentProgressValue;

    /**
     * 上一实际值结果
     */
    @ApiModelProperty("上一实际值结果")
    private Double parentActualValue;

    /**
     * 参照进度值（数值）
     */
    @ApiModelProperty("参照进度值（数值）")
    private Double countProgressValue;

    /**
     * 参照进度较上次变化值
     */
    @ApiModelProperty("参照进度较上次变化值")
    private Double countFromLastProgressValue;

    /**
     * 参照进度较上次增降幅
     */
    @ApiModelProperty("参照进度较上次增降幅")
    private Double countProgressFromLastRatio;

    /**
     * 参照进度值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照进度值单位")
    private String countProgressValueUnit;

    /**
     * 参照进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照进度较上次变化值单位")
    private String countFromLastProgressValueUnit;

    /**
     * 参照进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照进度较上次增降幅单位")
    private String countProgressFromLastRatioUnit;

    /**
     * 就职记录ID
     */
    @ApiModelProperty("就职记录ID")
    private String inductionRecordId;

    /**
     * 工作任务对象类型 PROJECT:项目 TASK:任务 PROBLEM:问题
     */
    @ApiModelProperty("工作任务对象类型")
    private String workTaskObjectType;

    /**
     * 身份人员ID
     */
    @ApiModelProperty("身份人员ID")
    private String originalRoleMemberId;

    /**
     * 自定义字段
     */
    @ApiModelProperty("自定义字段")
    private String customField;

    /**
     * 自定义字段1
     */
    @ApiModelProperty("自定义字段1")
    private String customField1;

    /**
     * 自定义字段2
     */
    @ApiModelProperty("自定义字段2")
    private String customField2;

    /**
     * 自定义字段3
     */
    @ApiModelProperty("自定义字段3")
    private String customField3;

    /**
     * 工作周期是否开启汇报 TRUE:是 FALSE:否
     */
    @ApiModelProperty("工作周期是否开启汇报")
    private String workCycleIsOpenReport;

    /**
     * 是否开启汇报任务周期筛选 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启汇报任务周期筛选  ")
    private String isOpenReportTaskCycleSelect;

    /**
     * 是否开启汇报任务按人筛选 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启汇报任务按人筛选 ")
    private String isOpenReportTaskPersonSelect;

    /**
     * 是否开启汇报任务按部门筛选 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启汇报任务按部门筛选 ")
    private String isOpenReportTaskDeptSelect;

    /**
     * 是否开启汇报任务目标内容树筛选 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启汇报任务目标内容树筛选")
    private String isOpenReportTaskCateSelect;

}
